Ansible Semaphore als Docker installieren
Zuerst erstellen wir ein Verzeichnis, wo wir dann Zugriff auf die Playbooks haben.
sudo mkdir -p /opt/semaphore/playbook
Dann setzen wir auf das Verzeichnis /opt/semaphore/playbook noch Berechtigungen, da im Container der Benutzer semaphor mit der UID 1001 darauf zugreifen muss.
sudo chown -R 1001 /opt/semaphore/playbook
Nun erstellen wir uns eine docker-compose.yml Datei.
version: '3.3'
services:
mysql:
image: mariadb:10
container_name: mysql
hostname: ${SEMAPHORE_DB_HOST}
environment:
MYSQL_RANDOM_ROOT_PASSWORD: '${MYSQL_RANDOM_ROOT_PASSWORD}'
MYSQL_DATABASE: ${SEMAPHORE_DB}
MYSQL_USER: ${SEMAPHORE_DB_USER}
MYSQL_PASSWORD: ${SEMAPHORE_DB_PASS}
semaphore:
env_file:
- .env
image: ansiblesemaphore/semaphore
container_name: semaphore
hostname: semaphore
environment:
SEMAPHORE_DB_USER: ${SEMAPHORE_DB_USER}
SEMAPHORE_DB_PASS: ${SEMAPHORE_DB_PASS}
SEMAPHORE_DB_HOST: ${SEMAPHORE_DB_HOST}
SEMAPHORE_DB_PORT: ${SEMAPHORE_DB_PORT}
SEMAPHORE_DB: ${SEMAPHORE_DB}
SEMAPHORE_PLAYBOOK_PATH: ${SEMAPHORE_PLAYBOOK_PATH}
SEMAPHORE_ADMIN_PASSWORD: "${SEMAPHORE_ADMIN_PASSWORD}"
SEMAPHORE_ADMIN_NAME: "${SEMAPHORE_ADMIN_NAME}"
SEMAPHORE_ADMIN_EMAIL: ${SEMAPHORE_ADMIN_EMAIL}
SEMAPHORE_ADMIN: ${SEMAPHORE_ADMIN}
SEMAPHORE_WEB_ROOT: ${SEMAPHORE_WEB_ROOT}
ports:
- "${HOST_IPADDR}${HOST_PORT}:3000"
volumes:
- /etc/localtime:/etc/localtime:ro
- './playbook:${SEMAPHORE_PLAYBOOK_PATH}'
depends_on:
- mysql
Als nächstes erstellen wir noch die .env Datei.
MYSQL_RANDOM_ROOT_PASSWORD=yes
SEMAPHORE_DB_USER=semaphore
SEMAPHORE_DB_PASS=Bubu1234
SEMAPHORE_DB_HOST=mysql
SEMAPHORE_DB_PORT=3306
SEMAPHORE_DB=semaphore
SEMAPHORE_PLAYBOOK_PATH=/etc/semaphore
SEMAPHORE_ADMIN_PASSWORD=Test1234
SEMAPHORE_ADMIN_NAME=Administrator
SEMAPHORE_ADMIN_EMAIL=root@localhost
SEMAPHORE_ADMIN=admin
SEMAPHORE_WEB_ROOT=http://127.0.0.1:3000
HOST_IPADDR=
HOST_PORT=3000
Nun starten wir den Docker Container mit docker-compose.
sudo docker compose up -d